<?php
class AsistenciasController extends AppController {

	var $name = 'Asistencias';
	var $uses = array('Asistencia', 'CirculosAprendizaje');
	var $helpers = array('Asistencia', 'Access');

	function index() {
		$usuario_activo = $this->Access->getMy('username');
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		$this->Asistencia->recursive = 0;		
		$group_id= $this->Access->getMy('group_id');
		$user_id= $this->Access->getMy('id');
		if($group_id=="2"){ //Si es TUTOR
				$circulos_aprendizajes = $this->paginate("CirculosAprendizaje", array('CirculosAprendizaje.user_id'=>$user_id));			
		}		
		//Si es Administrador muestra todos los circulos
		else{
			$circulos_aprendizajes = $this->CirculosAprendizaje->find('list', array('fields'=>array('CirculosAprendizaje.id'),
																		  'order'=>array('CirculosAprendizaje.nombre'=>'ASC')));
			$circulos_aprendizajes = $this->paginate("CirculosAprendizaje");
		}	
						
		$this->set('circulos', $circulos_aprendizajes);
		$this->set(compact('group_id','user_id'));
	}

	function view($id = null) {
		$usuario_activo = $this->Access->getMy('username');
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		if (!$id) {
			$this->Session->setFlash(__('Invalid asistencia', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('asistencia', $this->Asistencia->read(null, $id));
	}
	
	
	/**
	 * 
	 * Agregar asistencia a los estudiantes de un circulo
	 * @param unknown_type $mes
	 * @param unknown_type $year
	 * @param unknown_type $circulo
	 */
	function add($mes=null, $year=null, $circulo = null) {
		
		$usuario_activo = $this->Access->getMy('username');
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		if (!empty($this->data)) {			
			$form = $this->data;			

			if(is_array($form['Estudiantes'])) {
								
				foreach ($form['Estudiantes'] as $estudiante){
					
					$falla = (!empty($form['Fallas'][$estudiante])) ? $form['Fallas'][$estudiante] : 0;

					$registro['Asistencia']= array('estudiante_id'=>$estudiante,'user_id'=>$form['user_id'],'fallas'=>$falla, 
												   'mes'=>$form['mes'], 'circulos_aprendizaje_id'=>$form['circulos_aprendizaje_id']);
					
					$this->Asistencia->create();					
					$this->Asistencia->save($registro);										
				}
				$this->Session->setFlash(__('La asistencia ha sido guardada', true));
				$this->redirect(array('action' => 'index'));
			}			
		}
		
		//Usuario Circulo
		$usuario_circulo = $this->CirculosAprendizaje->read('user_id',$circulo);
		$usuario_circulo = $usuario_circulo['CirculosAprendizaje']['user_id'];
		$estudiantes = $this->Asistencia->Estudiante->find('all', array('fields' => array('Estudiante.id', 'Estudiante.nombre_completo'),
																		'conditions'=>array('Estudiante.circulos_aprendizaje_id'=>$circulo),
																		'order'=>'Estudiante.primer_apellido ASC'));		
				
		$users = $this->Asistencia->User->find('first', array('fields'=>array('User.id','User.nombre_completo'), 'conditions'=>array('User.id'=>$usuario_circulo)));	
		$fecha = $year."-".$mes;
		$group_id= $this->Access->getMy('group_id');
		$user_id= $this->Access->getMy('id');
		
		$this->set(compact('estudiantes', 'users', 'circulo', 'fecha', 'group_id', 'user_id'));
	}

	
	
	/**
	 * 
	 * Editar asistencia a los estudiantes de un circulo 
	 * @param unknown_type $mes
	 * @param unknown_type $year
	 * @param unknown_type $circulo
	 */
	function edit($mes=null, $year=null, $circulo = null) {
		$usuario_activo = $this->Access->getMy('username');
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		if (!$circulo && empty($this->data)) {
			$this->Session->setFlash(__('Asistencia Invalida', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			
			
			$form = $this->data;			

			//die(var_dump($form));
			if(is_array($form['Estudiantes'])) {
								
				foreach ($form['Estudiantes'] as $estudiante){					
					$falla = (!empty($form['Fallas'][$estudiante])) ? $form['Fallas'][$estudiante] : 0;

					$this->Asistencia->id = $form['Asistencias'][$estudiante];
					//Cuando no existe el estudiante en el listado de asistencia
					if($this->Asistencia->id==""){						
						$registro['Asistencia']= array('estudiante_id'=>$estudiante,'user_id'=>$form['user_id'],'fallas'=>$falla, 
												   'mes'=>$form['mes'], 'circulos_aprendizaje_id'=>$form['circulos_aprendizaje_id']);
						$this->Asistencia->create();
						$this->Asistencia->save($registro);
					}else{
						//Cuando existe el estudiante en el listado de asistencia						
						$this->Asistencia->saveField("fallas", $falla);						
					}												
				}
				$this->Session->setFlash(__('La asistencia ha sido guardada', true));
				$this->redirect(array('action' => 'index'));
			}			
		}
		if (empty($this->data)) {
			$this->data = $this->Asistencia->find('all');
		}
		
		//Usuario Circulo
		$usuario_circulo = $this->CirculosAprendizaje->read('user_id',$circulo);
		$usuario_circulo = $usuario_circulo['CirculosAprendizaje']['user_id'];
		$estudiantes = $this->Asistencia->Estudiante->find('all', array('fields' => array('Estudiante.id', 'Estudiante.nombre_completo'),
																		'conditions'=>array('Estudiante.circulos_aprendizaje_id'=>$circulo),
																		'order'=>'Estudiante.primer_apellido ASC'));
		$users = $this->Asistencia->User->find('first', array('fields'=>array('User.id','User.nombre_completo'), 'conditions'=>array('User.id'=>$usuario_circulo)));	
		$fecha = $year."-".$mes;
		$group_id= $this->Access->getMy('group_id');
		$user_id= $this->Access->getMy('id');
		
		$this->set(compact('estudiantes', 'users', 'circulo', 'fecha', 'group_id', 'user_id'));
	}
	
	

	function delete($id = null){
		$usuario_activo = $this->Access->getMy('username');
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		if (!$id) {
			$this->Session->setFlash(__('Asistencia Inavalida', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Asistencia->delete($id)) {
			$this->Session->setFlash(__('Asistencia eliminada', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Asistencia no eliminada', true));
		$this->redirect(array('action' => 'index'));
	}
}
?>